package com.algorithm;

import java.util.HashMap;
import java.util.Map;

/**
 * 水果成篮(时间窗口)
 */
public class FruitIntoBaskets {

    public static int totalFruit(int[] fruits) {
        Map<Integer,Integer> map=new HashMap<>();
        int max=1;
        int j=0;
        for (int i=0;i<=fruits.length-1;i++){
            map.put(fruits[i],i);
            if (map.size()>2){
                int minIndex=fruits.length-1;

                for (Integer integer : map.keySet()) {
                    if (map.get(integer)<minIndex){
                        minIndex=map.get(integer);
                    }
                }
                map.remove(fruits[minIndex]);
                j=minIndex+1;
            }
            max=Math.max(max,i-j+1);
        }
        return max;
    }

    public static void main(String[] args) {

//        int[] nums={0,1,2,2};
        int[] nums={1,2,3,2,2};
        int i = totalFruit(nums);
        System.out.println(i);
    }
}
